/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.ifrr.gepro.estoria.handler;

import br.ifrr.gepro.estoria.bean.SituacaoEstoriaBean;
import br.ifrr.gepro.estoria.dao.SituacaoEstoriaDao;
import br.ifrr.gepro.util.DAOException;
import br.ifrr.gepro.util.JsfUtil;
import br.ifrr.gepro.util.Navegacao;
import java.util.ArrayList;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import javax.faces.model.SelectItem;

/**
 *
 * @author rafael
 */
@ManagedBean(name = "situacaoestoria")
@SessionScoped
public class SituacaoEstoriaMB {

    private SituacaoEstoriaBean novasitu = new SituacaoEstoriaBean();
    private ArrayList<SituacaoEstoriaBean> listaSituacoes = new ArrayList<SituacaoEstoriaBean>();

    public String preparaCadastro() {
        novasitu = new SituacaoEstoriaBean();
        return Navegacao.paginaCadSituacao;
    }

    public String preparaListar() {
        return null;
    }

    public String salvar() throws DAOException {
        if (novasitu.getId() == null) {
            new SituacaoEstoriaDao().inserir(getNovasitu());
        } else {
            new SituacaoEstoriaDao().alterar(getNovasitu());
        }
        JsfUtil.showMessageInfo("Cadastrado com sucesso!");
        setNovasitu(new SituacaoEstoriaBean());
        return Navegacao.paginaListSituacao;
    }

    public String editar() throws DAOException {
        int s = Integer.parseInt(FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("idSituacao"));
        novasitu = (SituacaoEstoriaBean) new SituacaoEstoriaDao().selecionar(s);
        return Navegacao.paginaCadSituacao;
    }

    public String excluir() throws DAOException {
        try{
        int s = Integer.parseInt(FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("idSituacao"));
        new SituacaoEstoriaDao().excluir(new SituacaoEstoriaBean(s));
        JsfUtil.showMessageInfo("Operação realizada com sucesso!");}
        catch (Exception e){
            
            System.out.println(e.getMessage());
            System.out.println(e.getCause());
            JsfUtil.showMessageErro("Erro!");
        
        }
        return null;
    }

    /**
     * @return the novasitu
     */
    public SituacaoEstoriaBean getNovasitu() {
        return novasitu;
    }

    /**
     * @param novasitu the novasitu to set
     */
    public void setNovasitu(SituacaoEstoriaBean novasitu) {
        this.novasitu = novasitu;
    }

    public ArrayList<SituacaoEstoriaBean> getListaSituacoes() throws DAOException {
        listaSituacoes = (ArrayList<SituacaoEstoriaBean>) new SituacaoEstoriaDao().listar();
        return listaSituacoes;
    }

    public void setListaSituacoes(ArrayList<SituacaoEstoriaBean> listaSituacoes) {
        this.listaSituacoes = listaSituacoes;
    }

    public List<SituacaoEstoriaBean> getSituacoes() throws DAOException {
        return new SituacaoEstoriaDao().listar();
    }

    public List<SelectItem> getSituacoesCombo() throws DAOException {
        List<SelectItem> lista = new ArrayList<SelectItem>();
        for (SituacaoEstoriaBean s : getSituacoes()) {
            lista.add(new SelectItem(s.getId(), s.getDescricao()));
        }
        return lista;
    }
//    public List<ProjetoBean> getProjetos() throws DAOException {
//        return new ProjetoDao().listar();
//
//    }
//
//    public List<SelectItem> getProjetosCombo() throws DAOException {
//        List<SelectItem> lista = new ArrayList<SelectItem>();
//        for (ProjetoBean p : getProjetos()) {
//            lista.add(new SelectItem(p.getIdProjeto(), p.getNome()));
//        }
//        return lista;
//    }
//    
}
